<!doctype html><html lang=en>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="IE=edge,chrome=1">
<title>SVN Cheatsheet - Taxodium</title>
<meta name=renderer content="webkit">
<meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1">
<meta http-equiv=cache-control content="no-transform">
<meta http-equiv=cache-control content="no-siteapp">
<meta name=theme-color content="#f8f5ec">
<meta name=msapplication-navbutton-color content="#f8f5ec">
<meta name=apple-mobile-web-app-capable content="yes">
<meta name=apple-mobile-web-app-status-bar-style content="#f8f5ec">
<meta name=author content="Spike Leung"><meta name=description content="&#34;&#34;"><meta name=keywords content="[]">
<meta name=generator content="Hugo 0.88.1 with theme even">
<link rel=canonical href=http://localhost:1313/taxodium/post/svn-cheatsheet/>
<link rel=apple-touch-icon sizes=180x180 href=/taxodium/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=/taxodium/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=/taxodium/favicon-16x16.png>
<link rel=manifest href=/taxodium/manifest.json>
<link rel=mask-icon href=/taxodium/safari-pinned-tab.svg color=#5bbad5>
<script async src=//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js></script>
<link href=/taxodium/sass/main.min.f92fd13721ddf72129410fd8250e73152cc6f2438082b6c0208dc24ee7c13fc4.css rel=stylesheet>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.css integrity="sha256-7TyXnr2YU040zfSP+rEcz29ggW4j56/ujTPwjMzyqFY=" crossorigin=anonymous>
<meta property="og:title" content="SVN Cheatsheet">
<meta property="og:description" content="&#34;&#34;">
<meta property="og:type" content="article">
<meta property="og:url" content="http://localhost:1313/taxodium/post/svn-cheatsheet/"><meta property="article:section" content="post">
<meta property="article:published_time" content="2021-08-15T11:53:05+08:00">
<meta property="article:modified_time" content="2021-08-29T09:59:22+08:00">
<meta itemprop=name content="SVN Cheatsheet">
<meta itemprop=description content="&#34;&#34;"><meta itemprop=datePublished content="2021-08-15T11:53:05+08:00">
<meta itemprop=dateModified content="2021-08-29T09:59:22+08:00">
<meta itemprop=wordCount content="1219">
<meta itemprop=keywords content="svn,"><meta name=twitter:card content="summary">
<meta name=twitter:title content="SVN Cheatsheet">
<meta name=twitter:description content="&#34;&#34;"><!--[if lte IE 9]><script src=https://cdnjs.cloudflare.com/ajax/libs/classlist/1.1.20170427/classList.min.js></script><![endif]--><!--[if lt IE 9]><script src=https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js></script>
<script src=https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js></script><![endif]-->
</head>
<body>
<div id=mobile-navbar class=mobile-navbar>
<div class=mobile-header-logo>
<a href=/taxodium/ class=logo>Taxodium</a>
</div>
<div class=mobile-navbar-icon>
<span></span>
<span></span>
<span></span>
</div>
</div>
<nav id=mobile-menu class="mobile-menu slideout-menu">
<ul class=mobile-menu-list>
<a href=/taxodium/>
<li class=mobile-menu-item>Home</li>
</a><a href=/taxodium/post/>
<li class=mobile-menu-item>Archives</li>
</a><a href=/taxodium/tags/>
<li class=mobile-menu-item>Tags</li>
</a><a href=/taxodium/categories/>
<li class=mobile-menu-item>Categories</li>
</a><a href=/taxodium/about/>
<li class=mobile-menu-item>About</li>
</a>
</ul>
</nav>
<div class=container id=mobile-panel>
<header id=header class=header>
<div class=logo-wrapper>
<a href=/taxodium/ class=logo>Taxodium</a>
</div>
<nav class=site-navbar>
<ul id=menu class=menu>
<li class=menu-item>
<a class=menu-item-link href=/taxodium/>Home</a>
</li><li class=menu-item>
<a class=menu-item-link href=/taxodium/post/>Archives</a>
</li><li class=menu-item>
<a class=menu-item-link href=/taxodium/tags/>Tags</a>
</li><li class=menu-item>
<a class=menu-item-link href=/taxodium/categories/>Categories</a>
</li><li class=menu-item>
<a class=menu-item-link href=/taxodium/about/>About</a>
</li>
</ul>
</nav>
</header>
<main id=main class=main>
<div class=content-wrapper>
<div id=content class=content>
<article class=post>
<header class=post-header>
<h1 class=post-title>SVN Cheatsheet</h1>
<div class=post-meta>
<span class=post-time> 2021-08-15 </span>
<div class=post-category>
<a href=/taxodium/categories/svn/> svn </a>
</div>
<span class=more-meta> 1219 words </span>
<span class=more-meta> 3 mins read </span>
<span id=busuanzi_container_page_pv class=more-meta> <span id=busuanzi_value_page_pv><img src=/taxodium/img/spinner.svg alt=spinner.svg></span> times read </span>
</div>
</header>
<div class=post-toc id=post-toc>
<h2 class=post-toc-title>Contents</h2>
<div class="post-toc-content always-active">
<nav id=TableOfContents>
<ul>
<li><a href=#headline-1>svn info</a>
</li>
<li><a href=#headline-2>svn checkout</a>
</li>
<li><a href=#headline-3>svn list</a>
</li>
<li><a href=#headline-4>svn cat</a>
</li>
<li><a href=#headline-5>svn log</a>
<ul>
<li><a href=#headline-6>查看</a>
</li>
<li><a href=#headline-7>编辑</a>
</li>
</ul>
</li>
<li><a href=#headline-8>svn update</a>
</li>
<li><a href=#headline-9>svn commit</a>
</li>
<li><a href=#headline-10>svn diff</a>
<ul>
<li><a href=#headline-11>diff 美化</a>
</li>
</ul>
</li>
<li><a href=#headline-12>svn delete</a>
</li>
<li><a href=#headline-13>其他</a>
<ul>
<li><a href=#headline-14>节省输入</a>
</li>
</ul>
</li>
<li><a href=#headline-15>参考链接</a>
</li>
</ul>
</nav>
</div>
</div>
<div class=post-content>
<p>
本文整理一些 SVN 的常用指令，方便查询使用。命令行相对来说还是有些麻烦的，你也可以使用 GUI 去完成 SVN 操作。
Window 上有 <a href=https://tortoisesvn.net/>TortoiseSVN</a>， Mac 有 <a href=https://www.smartsvn.com/>SmartSVN</a>， 笔者当时用的就是 <code>SmartSVN</code> ，但有些功能需要付费，有的地方也不方便，所以就学习了命令行操作。
或者也可以用 <code>Emacs</code> ， 它集成了一套还不错的版本控制操作， <code>Emacs</code> 结合命令行，基本上覆盖了我所有的使用场景了。</p>
<div id=outline-container-headline-1 class=outline-2>
<h2 id=headline-1>
svn info
</h2>
<div id=outline-text-headline-1 class=outline-text-2>
<p>
查看 SVN 仓库信息</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt> 1
</span><span class=lnt> 2
</span><span class=lnt> 3
</span><span class=lnt> 4
</span><span class=lnt> 5
</span><span class=lnt> 6
</span><span class=lnt> 7
</span><span class=lnt> 8
</span><span class=lnt> 9
</span><span class=lnt>10
</span><span class=lnt>11
</span><span class=lnt>12
</span><span class=lnt>13
</span><span class=lnt>14
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>&gt;  svn info
Path: .

Working Copy Root Path: /Users/spike/Documents/svn/project/xxxx
URL: http://1.1.1.1/xxx/xxx/xxx
Relative URL: ^/xxxx
Repository Root: xxxx
Repository UUID: xxxxx
Revision: <span class=m>28885</span>
Node Kind: directory
Schedule: normal
Last Changed Author: xxx
Last Changed Rev: <span class=m>28885</span>
Last Changed Date: 2021-07-30 16:42:16 +0800 <span class=o>(</span>五, <span class=m>30</span>  <span class=m>7</span> 2021<span class=o>)</span></code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-2 class=outline-2>
<h2 id=headline-2>
svn checkout
</h2>
<div id=outline-text-headline-2 class=outline-text-2>
<p>
获取到 SVN 仓库地址后，拉取仓库代码</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn checkout URL</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-3 class=outline-2>
<h2 id=headline-3>
svn list
</h2>
<div id=outline-text-headline-3 class=outline-text-2>
<p>
当知道 SVN 仓库的 URL，可以通过 <code>svn list</code> 查看仓库下包行那些 Tags，哪些分支</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn list URL</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-4 class=outline-2>
<h2 id=headline-4>
svn cat
</h2>
<div id=outline-text-headline-4 class=outline-text-2>
<p>
查看 <code>menu.jsp</code> 在 <code>12343</code> 版本的内容</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn cat menu.jsp -r <span class=m>12343</span></code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-5 class=outline-2>
<h2 id=headline-5>
svn log
</h2>
<div id=outline-text-headline-5 class=outline-text-2>
<div id=outline-container-headline-6 class=outline-3>
<h3 id=headline-6>
查看
</h3>
<div id=outline-text-headline-6 class=outline-text-3>
<p>
查看最近10条提交记录</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn log -l <span class=m>10</span></code></pre></td></tr></table>
</div>
</div>
</div>
<p>
查看 2020-01-01 到 2020-12-31，包含 msg 和 msg2 的日志</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn log  --search <span class=s1>&#39;msg&#39;</span> --search-and <span class=s1>&#39;msg2&#39;</span> -r <span class=o>{</span>2020-01-01<span class=o>}</span>:<span class=o>{</span>2020-12-31<span class=o>}</span></code></pre></td></tr></table>
</div>
</div>
</div>
<p>
查看某个提交涉及的改动文件</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn log -v -r &lt;REV&gt;</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-7 class=outline-3>
<h3 id=headline-7>
编辑
</h3>
<div id=outline-text-headline-7 class=outline-text-3>
<p>有时，提交信息错了，想去修改，可以通过以下命令：</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn propedit -r &lt;REV&gt; --revprop svn:log</code></pre></td></tr></table>
</div>
</div>
</div>
<p>
<code>&lt;REV></code> 是对应的日志序号，例如1234</p>
<p>
这个命令会打开一个编辑器，让你编辑日志信息，但如果没有配置，就会出现一个报错:</p>
<p>
<code>svn: could not use external editor to fetch log message</code></p>
<p>
可以去修改SVN的配置文件，指定编辑器， 在Mac中，路径一般是在 <code>~/.subversion/config</code>, 找到 <code>editor-cmd</code>, 指定为你喜欢的编辑器即可。</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span><span class=lnt>2
</span><span class=lnt>3
</span><span class=lnt>4
</span><span class=lnt>5
</span><span class=lnt>6
</span><span class=lnt>7
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>*# Section <span class=k>for</span> configuring external helper applications.
<span class=o>[</span>helpers<span class=o>]</span>
*# Set editor-cmd to the <span class=nb>command</span> used to invoke your text editor.
*#   This will override the environment variables that Subversion
*#   examines by default to find this information <span class=o>(</span><span class=nv>$EDITOR</span>,
*#   et al<span class=o>)</span>.
editor-cmd <span class=o>=</span> emacsclient</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-8 class=outline-2>
<h2 id=headline-8>
svn update
</h2>
<div id=outline-text-headline-8 class=outline-text-2>
<p>更新 SVN 仓库</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn update</code></pre></td></tr></table>
</div>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-9 class=outline-2>
<h2 id=headline-9>
svn commit
</h2>
<div id=outline-text-headline-9 class=outline-text-2>
<p>
指定要提交的文件，然后提交</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>svn commit PATH...</code></pre></td></tr></table>
</div>
</div>
</div>
<p>
但是，项目中文件可能很多，一个一个去指定还是有些麻烦的。SVN 支持从文件读取路径，于是可以这么做：</p>
<ol>
<li>
<p><code>svn st -q | cut -c 9- > ~/target.txt</code> 把改动的文件路径全部输出到一个文件中</p>
</li>
<li>
<p>打开 <code>~/target.txt</code>, 看看有没有路径是需要删除的，有的话就删除，剩下的就是之后要提交的文件</p>
</li>
<li>
<p><code>svn commit --targets ~/target.txt</code> 使用~~/target.txt~的内容进行提交</p>
</li>
</ol>
<p>参考 <a href=https://stackoverflow.com/questions/1516188/svn-commit-specific-files>SVN Commit specific files</a></p>
</div>
</div>
<div id=outline-container-headline-10 class=outline-2>
<h2 id=headline-10>
svn diff
</h2>
<div id=outline-text-headline-10 class=outline-text-2>
<p>查看某个文件在某个版本的改动</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>  svn diff -c &lt;REV&gt; &lt;PATH&gt;</code></pre></td></tr></table>
</div>
</div>
</div>
<p>
查看 <code>menus.jsp</code> 在 <code>23304</code> 相对于 <code>23314</code> 的改动</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>  svn diff menu.jsp -r 23304:23314</code></pre></td></tr></table>
</div>
</div>
</div>
<div id=outline-container-headline-11 class=outline-3>
<h3 id=headline-11>
diff 美化
</h3>
<div id=outline-text-headline-11 class=outline-text-3>
<p>
默认 <code>svn diff</code> 输出的内容颜色是一样的，只能通过 <code>+</code> 和 <code>-</code> 判断哪些是增加，哪些是删除， 为了直观一些，可以安装 <code>colordiff</code> 进行美化：</p>
<ol>
<li>
<p><code>brew install colordiff</code> 安装</p>
</li>
<li>
<p><code>svn diff menu.jsp -r 23304:23314 | colordiff</code> 通过管道把输出交给 <code>colordiff</code> 美化</p>
</li>
</ol>
<p>具体可以参考 <a href=http://icodeit.org/2015/02/make-a-colorful-svn-diff/>制作一个更漂亮的SVN Diff命令</a>。</p>
<p>
尽管已经有了颜色区分了，但还是不太方便比对，可以参考以下两篇文章，使用比对工具进行查看：</p>
<ol>
<li>
<p><a href=https://stackoverflow.com/questions/25050303/is-there-any-free-svn-diff-tool-for-mac-instead-of-use-command-line-svn-diff>Is there any free svn diff tool for Mac Instead of use command line 'svn diff'</a></p>
</li>
<li>
<p><a href=https://gist.github.com/dtjm/523243>Wrapper to use OS X FileMerge when calling `svn diff`</a></p>
</li>
</ol>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-12 class=outline-2>
<h2 id=headline-12>
svn delete
</h2>
<div id=outline-text-headline-12 class=outline-text-2>
<p>把文件从 SVN 中移除</p>
<div class="src src-bash">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span><span class=lnt>2
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-bash data-lang=bash>  svn delete file...
  svn delete directory...</code></pre></td></tr></table>
</div>
</div>
</div>
<p>
删除后需要提交</p>
</div>
</div>
<div id=outline-container-headline-13 class=outline-2>
<h2 id=headline-13>
其他
</h2>
<div id=outline-text-headline-13 class=outline-text-2>
<div id=outline-container-headline-14 class=outline-3>
<h3 id=headline-14>
节省输入
</h3>
<div id=outline-text-headline-14 class=outline-text-3>
<p>如果你使用命令行操作 <code>SVN</code>, 总是频繁的输入重复的命令会很烦恼吧？你可以通过定制一些别名来节省操作。
例如编辑日志，每次都要输入 <code>svn propedit -r &lt;REV> --revprop svn:log</code> 就很麻烦，也有可能记不住那么多参数。
笔者使用的是 <code>zsh</code>, 在 <code>.zshrc</code> 中可以定义函数, 如</p>
<div class="src src-zsh">
<div class=highlight><div class=chroma>
<table class=lntable><tr><td class=lntd>
<pre tabindex=0 class=chroma><code><span class=lnt>1
</span><span class=lnt>2
</span><span class=lnt>3
</span><span class=lnt>4
</span><span class=lnt>5
</span><span class=lnt>6
</span></code></pre></td>
<td class=lntd>
<pre tabindex=0 class=chroma><code class=language-zsh data-lang=zsh><span class=c1># edit svn log</span>
<span class=k>function</span> editSvnLog<span class=o>()</span> <span class=o>{</span>
 <span class=nb>cd</span> <span class=s2>&#34;/Users/spike/Documents/svn/project/xxxx/&#34;</span>
 svn propedit -r <span class=s2>&#34;</span><span class=nv>$1</span><span class=s2>&#34;</span> --revprop svn:log
 <span class=nb>cd</span> -
<span class=o>}</span></code></pre></td></tr></table>
</div>
</div>
</div>
<p>
之后，我就可以调用 <code>editSvnLog xxxx</code> 去编辑日志，输入要修改的 <code>xxxx</code> 对应的提交信息了。
如果你用的是 <code>bash</code>, 那就改 <code>.bashrc</code> 。</p>
</div>
</div>
</div>
</div>
<div id=outline-container-headline-15 class=outline-2>
<h2 id=headline-15>
参考链接
</h2>
<div id=outline-text-headline-15 class=outline-text-2>
<ul>
<li>
<p><a href=https://stackoverflow.com/questions/1516188/svn-commit-specific-files>SVN Commit Specific files</a></p>
</li>
<li>
<p><a href=https://stackoverflow.com/questions/21720865/how-to-view-changes-made-to-files-on-a-certain-revision-in-subversion>How to view changes made to files on a certain revision in Subversion</a></p>
</li>
<li>
<p><a href=https://stackoverflow.com/questions/86049/how-do-i-ignore-files-in-subversion>How do I ignore files in Subversion?</a></p>
</li>
<li>
<p><a href=https://stackoverflow.com/questions/7131670/make-a-bash-alias-that-takes-a-parameter>Make a Bash alias that takes a parameter?</a></p>
</li>
<li>
<p><a href=https://svnbucket.com/posts/>svnbucket</a></p>
</li>
<li>
<p><a href=https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/developer_guide/sect-revision_control_systems-svn-file>1.2.4. Adding, Renaming, and Deleting Files</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class=post-copyright>
<p class=copyright-item>
<span class=item-title>Author</span>
<span class=item-content>Spike Leung</span>
</p>
<p class=copyright-item>
<span class=item-title>LastMod</span>
<span class=item-content>
2021-08-29
<a href=https://github.com/Spike-Leung/taxodium/commit/372d7449a1b6ed18970744387fe9cd82e91fc03f title="fix: fix title typo error">(372d744)</a>
</span>
</p>
<p class=copyright-item>
<span class=item-title>License</span>
<span class=item-content><a rel="license noopener" href=https://creativecommons.org/licenses/by-nc-nd/4.0/ target=_blank>CC BY-NC-ND 4.0</a></span>
</p>
</div>
<footer class=post-footer>
<div class=post-tags>
<a href=/taxodium/tags/svn/>svn</a>
</div>
<nav class=post-nav>
<a class=prev href=/taxodium/post/use-github-action-deploy-blog/>
<i class="iconfont icon-left"></i>
<span class="prev-text nav-default">使用 GitHub Actions 部署博客到 GitHub Pages</span>
<span class="prev-text nav-mobile">Prev</span>
</a>
<a class=next href=/taxodium/post/make-country-flag-icon/>
<span class="next-text nav-default">根据国家显示国旗图标</span>
<span class="next-text nav-mobile">Next</span>
<i class="iconfont icon-right"></i>
</a>
</nav>
</footer>
</article>
</div>
<script src=https://utteranc.es/client.js repo=Spike-Leung/taxodium issue-term=pathname theme=github-light crossorigin=anonymous async></script>
<noscript>Please enable JavaScript to view the <a href=https://github.com/utterance>comments powered by utterances.</a></noscript>
</div>
</main>
<footer id=footer class=footer>
<div class=social-links>
<a href=mailto:l-yanlei@hotmail.com class="iconfont icon-email" title=email></a>
<a href=https://github.com/Spike-Leung class="iconfont icon-github" title=github></a>
<a href=http://localhost:1313/taxodium/index.xml type=application/rss+xml class="iconfont icon-rss" title=rss></a>
</div>
<div class=copyright>
<span class=power-by>
Powered by <a class=hexo-link href=https://gohugo.io>Hugo</a>
</span>
<span class=division>|</span>
<span class=theme-info>
Theme -
<a class=theme-link href=https://github.com/olOwOlo/hugo-theme-even>Even</a>
</span>
<div class=busuanzi-footer>
<span id=busuanzi_container_site_pv> site pv: <span id=busuanzi_value_site_pv><img src=/taxodium/img/spinner.svg alt=spinner.svg></span> </span>
<span class=division>|</span>
<span id=busuanzi_container_site_uv> site uv: <span id=busuanzi_value_site_uv><img src=/taxodium/img/spinner.svg alt=spinner.svg></span> </span>
</div>
<span class=copyright-year>
&copy;
2017 -
2021<span class=heart><i class="iconfont icon-heart"></i></span><span>Spike Leung</span>
</span>
</div>
</footer>
<div class=back-to-top id=back-to-top>
<i class="iconfont icon-up"></i>
</div>
</div>
<script src=https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/slideout@1.0.1/dist/slideout.min.js integrity="sha256-t+zJ/g8/KXIJMjSVQdnibt4dlaDxc9zXr/9oNPeWqdg=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.js integrity="sha256-XVLffZaxoWfGUEbdzuLi7pwaUJv1cecsQJQqGLe7axY=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/timeago.js@3.0.2/dist/timeago.min.js integrity="sha256-jwCP0NAdCBloaIWTWHmW4i3snUNMHUNO+jr9rYd2iOI=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/timeago.js@3.0.2/dist/timeago.locales.min.js integrity="sha256-ZwofwC1Lf/faQCzN7nZtfijVV6hSwxjQMwXL4gn9qU8=" crossorigin=anonymous></script>
<script>var languageCode="en".replace(/-/g,'_').replace(/_(.*)/,function(b,a){return b.replace(a,a.toUpperCase())});timeago().render(document.querySelectorAll('.timeago'),languageCode),timeago.cancel()</script>
<script type=text/javascript src=/taxodium/js/main.min.c99b103c33d1539acf3025e1913697534542c4a5aa5af0ccc20475ed2863603b.js></script>
<script id=baidu_push>(function(){var a,c,b;if(window.location.hostname==='localhost')return;a=document.createElement('script'),a.async=!0,c=window.location.protocol.split(':')[0],c==='https'?a.src='https://zz.bdstatic.com/linksubmit/push.js':a.src='http://push.zhanzhang.baidu.com/push.js',b=document.getElementsByTagName("script")[0],b.parentNode.insertBefore(a,b)})()</script>
</body>
</html>